Information processing apparatus, selector, remote operation system, scan code transmission method, and program product therefor

ABSTRACT

An information processing apparatus includes a code converting portion that converts a scan code output from a keyboard into a corresponding key code, a data converting portion that converts the key code into packets, and a changing portion that changes an output destination of the scan code from the code converting portion to the data converting portion, when an application software to operate a server apparatus remotely located is activated in the information processing apparatus, which is in connection with the server apparatus over a network.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention generally relates to a technique of operating multipleservers in connection with a network from a Keyboard/Video Mouse (KVM)with the use of a personal computer for control (hereinafter, referredto as control PC).

2. Description of the Related Art

When multiple servers on the network are selectively changed foroperation by using a set of input devices (such as a keyboard, pointingdevice, and the like), a KVM apparatus 200 shown in FIG. 1 is employed.In such a system, data generated by operating a keyboard 110 and apointing device 111 is converted into packets on a control PC 100 andtransmitted on the network of TCP/IP or the like, to a KVM apparatus200. Upon receiving the packet data, the KVM apparatus 200 acquires dataof the keyboard and that of the pointing device from the packet data anddelivers to servers (1, 2, 3, . . . and N). The remote operation isexecuted by the above-described processing.

The control PC 100 is a general-purpose PC, and data input from thekeyboard 110 is processed in a flowchart shown in FIG. 2. Subsequent tothe key input on the keyboard 110, the key data is transmitted to thecontrol PC 100. The key data transmitted is called scan code, and has adifferent data value according to each key. The scan code input from thekeyboard 110 is received by an interface processor 107 of the control PCis converted into a key code on a keyboard driver 104, and is output toan Operating System (OS) 102 for code analysis, as shown in FIG. 2. Thekey code is a predetermined standard code of OS, that is to say, codedata that can be recognized and processed by OS. The scan code variesdepending on the keyboard. An example is “@”, which is different betweenUS101 keyboard and OADG109 keyboard. Therefore, a conversion process iscarried out to correct the difference, and is passed onto the OS 102 asa key code.

The key code received on the OS 102 is transmitted to a data detectionmodule 101, which is enacted by application software. The key codereceived on the data detection module 101 is output to a data converter105, and is converted into packets thereon. Then the packets are outputto a communication processor 108, and are transmitted onto the networkfrom the communication processor 108.

Japanese Patent Application Publication No. 6-289971 (hereinafter,referred to as Document 1) discloses a system in which a key inputgenerated by the keyboard operation of a server apparatus is convertedinto a key code to transmit to a client apparatus. The client apparatusstores display key information tables for multiple server apparatuses,in which the key code used on the client apparatus is associated withthe key code used on the server apparatus. The above-described system isalso equipped with a display key library, which refers to thecorresponding display key information table, and converts the key codeinput from the server apparatus into the key code used on the clientapparatus.

Japanese Patent Application Publication No. 2000-250696 (hereinafter,referred to as Document 2) relates to a remote control in which onecontrol information terminal remotely controls another informationterminal to be controlled among the information terminals connected overthe network. When the control information terminal and the informationterminal to be controlled have different physical types or differentlogical layouts in keyboards, the actual scan code generated by thecontrol information terminal is converted into a vertical scan code, andthen the vertical scan code is converted into the actual scan code ofthe keyboard of the information terminal to be controlled.

In the conversion from the scan code into the key code, Left-Shift keyand Right-Shift key have the same key codes. In this manner, the scancodes are different in inputting on the keyboard, but are converted intoan identical key code.

In a case where the remote server is operated with the application thatruns on the control PC 100, the keyboard data is always transmittedthrough the OS of the control PC 100. For this reason, the server, insome cases, has a system that can operate only the data converted intothe key code. In such system, if there is an application that executesdifferent functions by recognizing the difference of the inputs betweenLeft-Shift key and Right-Shift key on the server, there will be aproblem that the function cannot be executed due to the inability torecognize the difference between the key inputs on the server.

Also, in all systems, a special key input such as Ctrl-Alt-Delete isrecognized by the OS 102 of the control PC 100, so there is notransmission to the server from the control PC 100. Therefore, in orderto transmit such special key to the remote server from the control PC100 in the system equipped with the KVM apparatus 200, the applicationis designed to include GUI of special key buttons so that the GUIbuttons are clicked by a mouse to produce special key data (an exampleis DSR series (product name) of Avocent). However, in this method, allthe key inputs cannot be executed over the keyboard and it isinconvenient for users.

In addition, according to both techniques disclosed by Document 1 andDocument 2, there are provided a conversion table to convert the keycode or scan code generated on one terminal into those usable on anotherterminal. Such techniques consume resources of the apparatus for theconversion, and cause other problems that the conversion needs time andanother driver software needs to be installed.

SUMMARY OF THE INVENTION

The present invention has been made in view of the above circumstancesand provides an information processing apparatus, server selector,remote operation system, scan code transmission method, and programproduct therefor, in which a key input on a keyboard can be effectivelyrecognized by a server.

According to one aspect of the present invention, preferably, there isprovided an information processing apparatus including: a codeconverting portion that converts a scan code output from a keyboard intoa corresponding key code; a data converting portion that converts thekey code into packets; and a changing portion that changes an outputdestination of the scan code from the code converting portion to thedata converting portion, when an application software to operate aserver apparatus remotely located is activated in the informationprocessing apparatus, which is in connection with the server apparatusover a network. The scan code generated from the keyboard can betransmitted to the server apparatus without change. Accordingly, thereis no unnecessary data conversion, and the key input can be recognizedby the server. There is no necessity of software install for dataconversion, thereby eliminating the resource consumption in the serverapparatus and the information processing apparatus. In addition,unnecessary data conversion is not performed, thereby improving the datareliability. A special key such as Ctrl-Alt-Delete or the like can betransmitted to the server. According to another aspect of the presentinvention, there is provided a server selector including: a storageportion that stores information on a connection specification betweenone or more server apparatuses and the server selector; a data converterthat converts a scan code generated from a keyboard into datacorresponding to the connection specification; and a transmittingportion that transmits the data corresponding to the connectionspecification, to the one or more server apparatuses, wherein the serverselector can operate the one or more server apparatuses with a set ofconsole. The server selector is provided with a function of convertinginto the data according to the connection specification to operate oneor more server apparatuses. Accordingly, there is no need for installingthe software for data conversion on the server apparatus, therebyeliminating the resource consumption of the server apparatus. The scancode generated from the keyboard is converted into the datacorresponding to the connection specification and transmitted to theserver apparatus. This does not cause the problem that the scan codecannot be recognized on the server apparatus.

According to another aspect of the present invention, there is provideda remote operation system including: multiple server apparatusesremotely located; a server selector in connection with the multipleservers over a network to be able to operate the multiple serverapparatuses with a set of console; and an information processingapparatus in connection with the server selector and having the set ofconsole to operate the multiple server apparatuses, the informationprocessing apparatus including: a storage portion that storesinformation on a connection specification between each of the multipleserver apparatuses and the server selector; a data converting portionthat converts a scan code generated from a keyboard into datacorresponding to the connection specification of one of the multipleserver apparatuses, which is a transmission destination of the scancode; and a transmitting portion that transmits the data correspondingto the connection specification to the server selector.

According to another aspect of the present invention, there is provideda scan code transmission method including: converting a scan code inputon a keyboard into packets without changing to a corresponding key code,when an application software to operate a server apparatus is activated;and transmitting the scan code converted into the packets to a serverapparatus remotely located and connected over a network.

According to another aspect of the present invention, there is provideda scan code transmitting method including: converting a scan code inputwith a set of console into data corresponding to a connectionspecification with a server apparatus selected from multiple serverapparatuses; transmitting the data corresponding to the connectionspecification to the server apparatus.

According to another aspect of the present invention, there is provideda computer readable medium storing a program causing a computer toexecute a process for a scan code transmission, the process including:converting a scan code input on a keyboard into packets without changingto a corresponding key code, when an application software to operate aserver apparatus is activated; and transmitting the scan code convertedinto the packets to a server apparatus remotely located and connectedover a network.

According to another aspect of the present invention, there is provideda computer readable medium storing a program causing a computer toexecute a process for a scan code transmission, the process including:converting a scan code input with a set of console into datacorresponding to a connection specification with a server apparatusselected from multiple server apparatuses; transmitting the datacorresponding to the connection specification to the server apparatus.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred exemplary embodiments of the present invention will bedescribed in detail with reference to the following drawings, wherein:

FIG. 1 shows a system configuration;

FIG. 2 shows a data flowchart in a control PC;

FIG. 3 shows a configuration of the control PC in accordance with afirst exemplary embodiment of the present invention;

FIG. 4 shows a configuration of a KVM apparatus in accordance with thefirst exemplary embodiment of the present invention;

FIG. 5 shows a flowchart to register instruction data in a memory;

FIG. 6 shows a flowchart of procedure to transmit a scan code to the KVMapparatus according to the instruction data;

FIG. 7 shows a flowchart of operation at the KVM apparatus;

FIG. 8 shows a data flowchart;

FIG. 9 shows a screen provided by an application;

FIG. 10 shows a configuration of the control PC in accordance with asecond exemplary embodiment of the present invention;

FIG. 11 shows a configuration of the KVM apparatus in accordance with athird exemplary embodiment of the present invention;

FIG. 12 shows a packet format;

FIG. 13 shows a flowchart of operation at the time of powering on aserver N in connection with the KVM apparatus through PS/2;

FIG. 14 shows a flowchart of operation at the time of powering on aserver N in connection with the KVM apparatus through USB;

FIG. 15 shows a flowchart of determination process of the KVM apparatusthat receives the packet data;

FIG. 16 shows a configuration of the control PC in accordance with afourth exemplary embodiment of the present invention; and

FIG. 17 shows a configuration of the KVM apparatus in accordance withthe fourth exemplary embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

A description will now be given, with reference to the accompanyingdrawings, of exemplary embodiments of the present invention.

First Exemplary Embodiment

A description will now be given of a system configuration employed in afirst exemplary embodiment, with reference to FIG. 1. There areprovided: the control PC 100 (information processing apparatus) havingthe keyboard 110 and the pointing device 111 serving as a console; theKVM apparatus 200 (server selector) in connection with the control PC100; and multiple servers 1, 2, 3, . . . N (N is an arbitrary naturalnumber), in connection with a network via the KVM apparatus 200.

Referring now to FIG. 3, a description will be given of a configurationof the control PC 100. The control PC 100 includes: a controller 120; adata converter 105 (data converting portion); a memory 106; an interfaceprocessor 107; a communication processor 108; and the like. Thecontroller 120 is equipped with: a ROM that stores a control program; aCPU serving as a processing device; a RAM used as a work area of CPU;and the like. A data detection module (application software) 101, anOperating System (OS) 102, a pointing device driver 103, and a keyboarddriver 104 shown in FIG. 3 are realized by executing the operation onCPU, according to the program read from the ROM. Also, the control PC100 is connected by the keyboard 110 and the pointing device 111 via theinterface processor 107, and the communication processor 108 isconnected to the network.

The data detection module 101 is a part of the functions of theapplication software, and transmits instruction data to the dataconverter 105. The instruction data is flag information that instructsthe data converter 105 to transmit the received scan code, when theinterface processor 107 receives the scan code. The data detectionmodule 101 transmits the pointing device data received from the OS 102to the data converter 105. In addition, the data detection module 101transmits the network transmission information to the data converter105. The network transmission information is configuration informationthat the communication processor 108 transmits the packet data to theKVM apparatus 200.

Upon receiving the instruction data from the data detection module 101,the data converter 105 outputs the received instruction data to theinterface processor 107. In addition, upon receiving the networktransmission information from the data detection module 101, the dataconverter 105 outputs the received information to the communicationprocessor 108. Further, upon receiving the scan code from the interfaceprocessor 107, the data converter 105 converts the received scan codeinto packets and outputs the packets to the communication processor 108.Upon receiving the pointing device data from the data detection module101, the data converter 105 converts the received scan code into packetsand outputs the packets to the communication processor 108.

The interface processor (changing portion) 107 receives the instructiondata from the data converter 105, and stores the data in the memory 106.Upon receiving the scan code from the keyboard 110, the interfaceprocessor 107 refers to the memory 106 and transmits the scan codeaccording to the instruction data.

“0” is usually set to the instruction data. If the instruction data is“0”, the interface processor 107 transmits the scan code to the keyboarddriver 104. The scan code output to the keyboard driver 104 is convertedinto the key code. If the instruction data “1” is set by the datadetection module 101, the interface processor 107 transmits the scancode to the data converter 105. The scan code is converted into packetson the data converter 105 and output from the communication processor108 onto the network. Accordingly, the scan code is output to thecontrol PC 100 without change.

Upon receiving the pointing device data from the pointing device, theinterface processor 107 transmits the received data to the pointingdevice driver 103.

The scan code is input from the interface processor 107 into thekeyboard driver (code converting portion) 104. The keyboard driver 104converts the scan code into the key code and outputs to the OS 102. Thepointing device driver 103 receives the pointing device data from theinterface processor 107 and outputs to the OS 102.

The OS 102 receives the pointing device data from the pointing devicedriver 103 and outputs to the data detection module 101. The OS 102receives the key code from the keyboard driver 104 and outputs to thekey code to the data detection module 101.

The communication processor 108 receives the network transmissioninformation from the data converter 105, and transmits the packet datareceived from the data converter 105 to the network. The communicationprocessor 108 receives the packet data from the network and outputs thepacket data to the data converter 105.

A description will now be given of the configuration of the KVMapparatus 200, with reference to FIG. 4. The KVM apparatus 200 includes:a communication processor 201; a main controller 202; a data converter203; a memory 204 (storage portion); a scan code processor 205; and apointing device data processor 206.

The communication processor 201 forwards the packet data received viathe network to the main controller 202. The packet data forwarded fromthe main controller 202 is output to the network.

The main controller 202 receives the packet data from the communicationprocessor 201 and outputs the packet data to the data converter 203(data converting portion). The main controller 202 outputs the dataconverted into the packet data by the data converted 203 to thecommunication processor 201.

The data converter 203 receives the packet data from the main controller202, and retrieves the pointing device data or the scan code from thepacket data. Such retrieved scan code data is output to the scan codeprocessor 205, and the pointing device data is output to the pointingdevice data processor 206.

The scan code processor 205 transmits the scan code input from the dataconverter 203 to a server N (the server N represents an arbitrary serverof the servers 1, 2, 3, . . . and N). The pointing device data processor206 transmits the pointing device data input from the data converter203, to the server N.

Referring now to a flowchart of FIG. 5, a description will now be givenof an operation procedure of the control PC 100. When the applicationthat operates the remote server N is activated on the control PC 100(step S1), the data detection module 101 of the application outputs theinstruction data to the data converter 105 (step S2). The data converter105 outputs the instruction data that has been input is output to theinterface processor 107 (step S3). The interface processor 107 storesthe input instruction data in the memory 106 (step S4).

Next, a description will be given of an operation when there is a keyinput on the keyboard 110. When the application is activated to operatethe server N, the data detection module 101 outputs the instruction data“1”, and the instruction data “1” is set in the memory 106. In thisstate, when there is a key input from the keyboard 110 (step S11), thescan code is input from the interface processor 107 (step S12). Theinterface processor 107 refers to the instruction data stored in thememory 106 (step S13), and determines an output destination to which thescan code is output.

If the instruction data is “0” (step S14/NO), the interface processor107 outputs the scan code to the data converter 105 according to theinstruction data as shown in FIG. 8 (step S15). The keyboard driver 104converts the scan code into the key code (step S19), and outputs theconverted key code to the OS 102 (step S20).

If the instruction data is “1” (step S14/YES), the interface processor107 outputs the scan code to the data converter 105 according to theinstruction data as shown in FIG. 8 (step S15). The data converter 105converts the scan code input from the interface processor 107 intopackets, and outputs to the communication processor 108 (step S16). Thecommunication processor 108 transmits the packet data that has beeninput, to the KVM apparatus 200 (step S17).

When the application that operates the remote server N is completed, thedata detection module 101 outputs the instruction data “0”. Thisinstruction data is stored in the memory 106 according to theabove-described procedure. The instruction data output from the datadetection module 101 selectively changes a normal path where the scancode is converted into the key code and a path where the scan code isnot converted into the key code.

Referring now to FIG. 7, a description will now be given of an operationprocedure of the KVM apparatus 200. The KVM apparatus 200 receives thepacket data transmitted from the control PC 100 on the communicationprocessor 201 (step S21/YES). The communication processor 201 outputsthe received packet data to the main controller 202 (step S22). The maincontroller 202 receives the packet data to transfer to the dataconverter 203 (step S23). The data converter 203 receives the packetdata and retrieves the scan code from the packet data (step S24). Suchretrieved scan code is forwarded to the scan code processor 205 (stepS24). Upon receiving the scan code, the scan code processor 205transmits the scan code to the server N (step S25).

In the present exemplary embodiment, the scan codes can be directlytransmitted to the server N, thereby eliminating the process that theKVM apparatus 200 converts the key code into the scan code again andpasses onto the server. Accordingly, the process time can be shortenedand the data reliability can be enhanced. Also, when the remote server Nis operated, the scan code is directly transmitted to the KVM apparatus200 without passing through the keyboard driver 104 in the control PC100. It is therefore possible to send the special key such asCtrl-Alt-Delete key, so the key operation onto the server can beperformed from the keyboard of the control PC 100.

A detailed description is omitted on the configuration of thetransmitting and receiving the video signal. However, the operation willbe described briefly below. The KVM apparatus 200 receives the videosignal from the server N, performs analog-digital conversion of thevideo signal, converts into packets, and transmits to the control PC100. The control PC 100 receives the packet data from the KVM apparatus200, acquires the video signal of the packet data, and displays on theoperation window. In this manner, it is possible to display the pointingdevice operation and the key input of the remote server N.

In the above-described exemplary embodiment, the instruction data isselectively changed according to whether or not the application thatoperates the remote server N is activated. In addition, in a case wherethere is a cursor of the pointing device 111 such as a mouse or the likein the area of the operation screen activated by the application asshown in FIG. 9, the scan data is output to the data converter 105 tochange to the path where there is no conversion. In a case where thereis no cursor of the pointing device 111 in the area of the operationscreen, it may be changed to the path where the scan data is convertedinto the key code by the keyboard driver 104.

For the above-described determination, the OS 102 is registered toreceive the event generating at the pointing device 111. The eventgenerating in a state where the cursor of the pointing device 111 existson the operation screen is notified to the data detection module 101from the OS 102, so that the data detection module 101 acquires theevent.

As indicated by a cursor position A, in a case where there is a cursoron the operation screen of the application, the OS 102 notifies to thedata detection module 101. Such notified data detection module 101 setsthe instruction data “1” on the memory 106. This procedure is describedabove. Meanwhile, in a case where the cursor moves out of the operationscreen of the application such as a cursor position B, the notificationfrom the OS 102 cannot be acquired by the detection module 101 and thedata detection module 101 sets the instruction data “0”. In this manner,the transmission path of the scan code can be selectively changedaccording to the cursor position of the pointing device.

When a selector button is displayed on the operation screen provided bythe application and the selector button is pushed by the pointing device111, it may be configured such that the data detection module 101 setsthe instruction data “1”.

Second Exemplary Embodiment

A description will now be given of a second exemplary embodiment withreference to the accompanying drawings. FIG. 10 shows a configuration ofthe control PC 100 in accordance with the second exemplary embodiment ofthe present invention. In the first exemplary embodiment, when the scancode is input from the keyboard 110, the interface processor 107selectively changes the output destination where the scan code is to beoutput. That is to say, the interface processor 107 is provided to havethe functions of changing the output destination where the scan code isto be output. Meanwhile, in the present exemplary embodiment, the filterdriver (changing portion) 121 is installed to selectively change theoutput destination where the scan code is to be output by means ofsoftware control. The driver software such as the keyboard driver 104 orthe like has a layered structure with multiple programs, not a singleprogram. Instructions and data are passed onto a higher level or lowerlevel and processed. The operation of the layered drivers can bepartially changed by adding and inserting the filter driver to theexisting driver.

The filter driver 121 acquires the instruction data output from the datadetection module 101 via the data converter 105, and stores theinstruction data in the memory 106. When the scan code is input from theinterface processor 107, the filter driver 121 outputs the scan code toa given output destination where the scan code is to be output,according to the instruction data stored in the memory 106. That is tosay, if the instruction data is “0”, the scan code is output to thekeyboard driver 104. If the instruction data is “1”, the scan code isoutput to the data converter 105.

In the present exemplary embodiment, the scan code can be transmitted tothe KVM apparatus 200 without converting the scan code into the keycode, by adding the filter driver 121 to the control PC 100.

Third Exemplary Embodiment

A description will be given of a third exemplary embodiment withreference to the accompanying drawings. There are multiple types of thescan codes generated by the input on the keyboard 110, such as scan codesets 1 through 3 of PS/2 keyboard, the scan code of the USB keyboard,and the like. Among the afore-mentioned scan codes, the scan code set tobe used varies depending on the connection state of the server to beused, BIOS, and the driver software.

In a case where there is an input on the USB keyboard on the control PC100 side, the USB scan code is transmitted to the KVM apparatus 200. Atthis time, the server N and the KVM apparatus 200 are connected by PS/2,and the server N operates with the scan code set 1 of PS/2 keyboard.Even if the KVM apparatus 200 transmits the USB scan code to the serverN in this state, the input on the keyboard 110 is not recognized by theserver N and the operation cannot be performed. Accordingly, the scancode suitable for the server N has to be transmitted to the KVMapparatus 200.

FIG. 11 shows a configuration of the KVM apparatus 200. A USB devicedata processor 207 is newly provided with the KVM apparatus 200, asshown in FIG. 11. The USB device data processor 207 transmits the USBscan code output from the main controller 202 to the server N. When theenumeration starts with the server N by means of USB connection, the USBdevice data processor 207 receives the enumeration data transmitted fromthe server N, and outputs to the main controller 202.

When the server N and the KVM apparatus 200 are connected by PS/2, theKVM apparatus 200 receives the negotiation data transmitted from theserver N on the scan code processor 205 at the time of negotiation ofPS/2 connection. The negotiation data is transmitted to the maincontroller 202. The main controller 202 retrieves any of the PS/2 scancode sets 1 through 3 included in the negotiation data, and stores inthe memory 204 as the scan code set information (connectionspecification information).

When the server N and the KVM apparatus 200 are connected by USB, theKVM apparatus 200 receives the enumeration data transmitted from theserver N at the time of enumeration of USB connection, at the USB devicedata processor 207. The enumeration data is transmitted to the maincontroller 202. The main controller 202 retrieves the USB scan codeincluded in the enumeration data, and stores in the memory 204 as thescan code set information.

The data converter (data converting portion) 203 refers to the scan codeset information stored in the memory 204, and converts the scan codeacquired from the control PC 100 into the data of a format representedby the scan code set information stored in the memory 204. That is tosay, the scan code is converted into the scan code that corresponds tothe connection specification between the KVM apparatus 200 and theserver N. Such converted PS/2 scan code is output to the scan codeprocessor 205 by the main controller 202. Such converted USB scan codeis output to the USB device data processor 207 by the main controller202.

FIG. 12 is an example of a format of the packet data transmitted andreceived between the control PC 100 and the KVM apparatus 200. The dataportion of the packet data includes: identification data; data ID; datalength; and actual data, as shown in FIG. 12. The identification data isarbitrary data representing that the data is transmitted by the processof the present system. When the packet data that does not have theidentification data is received by the KVM apparatus 200, the KVMapparatus 200 determines that the data has been transmitted from thecontrol PC 100 in an existing method (an example of Virtual NetworkComputing (VNC) of RealVNC).

The data ID represents the data type transmitted to the KVM apparatus200 from the control PC 100, and is defined as follows:

0x01: PS/2 scan code set 1

0x02: PS/2 scan code set 2

0x04: PS/2 scan code set 3

0x08: USB scan code

0x10: PS/2 pointing device data

0x20: USB pointing device data

0x40: command

The data length represents the byte number of the actual data. Theactual data is the data of the keyboard and the pointing device from thecontrol PC 100. That is to say, this actual data includes the scan code.In addition, if the data ID is the actual data representing a command,the following data is included.

(1) change instruction of the scan code set

(2) scan code set information (data stored in the memory of the KVMapparatus)

(3) transmission request of the scan code set information

It is assumed that the data ID represents a command (in other words,0x40 is input) and the actual data is the data of (1) and (2). In thiscase, when the KVM apparatus 200 receives the packet data, the maincontroller 202 checks the data ID and the actual data, and changes thescan code set information stored in the memory 204. It is assumed thatthe data ID represents a command and the actual data is the data of (3).In this case, the data is the transmission request of the scan code setinformation stored in the memory 204 of the KVM apparatus 200. Further,if the data ID of the packet data transmitted to the control PC 100 fromthe KVM apparatus 200 represents a command and the actual data is thedata of the above-described (2), the control PC 100 is capable ofacquiring the scan code set information of the server N.

Next, a description will be given of the operation when the server N,which is connected with the KVM apparatus 200 by PS/2, is powered on,with reference to FIG. 13. When the server N is powered on (step S31),the negotiation (initial setting) of the PS/2 keyboard interface starts(step S32). The scan code processor 205 acquires the negotiation datafrom the server N (step S33), and outputs to the main controller 202(step S34). The main controller 202 retrieves any of the PS/2 scan codesets 1 through 3 from such received negotiation data, and stores in thememory 204 as the scan code set (step S35). In this state, thepreparation to receive the packet data from the control PC 100 iscompleted (step S36).

Next, a description will be given of the operation when the server ispowered on in connection with the KVM apparatus 200 by a USB device,with reference to FIG. 14. When the server N is powered on (step S41),the enumeration of the USB keyboard interface starts (step S42).Enumeration is to acquire the information from the device so that thehost learns what device is in connection with a bus and the device isconfigured on the basis of the acquired information. In other words, theenumeration is a process to recognize the connection of the USB device.The USB device data processor 207 acquires the enumeration data from theserver N (step S43), and transmits the acquired enumeration data to themain controller 202 (step S44). The main controller 202 stores the USBscan code from the acquired enumeration data in the memory 204 as thescan code set information (step S45). In this state, the KVM apparatus200 completes the preparation to receive the packet data from thecontrol PC (step S46).

Also, it can be considered that the server N and the KVM apparatus 200are connected by both PS/2 and USB. In such a case, it is possible togive priority to any one of them, for example, the USB connection.Accordingly, the scan code set information stores the USB scan code. Inaddition, the priority of the PS/2 and USB can be changed bytransmitting the command from the control PC 100. As an example of thechange, it is possible to change with the use of a hot key input on thekeyboard of the control PC or the GUI button displayed by theapplication software.

A description will now be given of the data processing of the KVMapparatus 200, with reference to a flowchart shown in FIG. 15. Uponreceiving the packet data from the communication processor 201 (stepS51/YES), the main controller 202 of the KVM apparatus 200 retrieves thedata portion shown in FIG. 12 from the packet data and confirms whetheror not there is the identification data (step S52). If there is theidentification data (step S52/YES), the data ID is confirmed (step S54).If there is no identification data (step S52/NO), the data is determinednot to be the data transmitted from the control PC 100 in the presentsystem, performs the process according to the existing protocol (anexample is VNC) (step S53), and transmits the data to the keyboard andpointing device data to the server N.

Next, the main controller 202 determines the data ID included in thepacket data (step S54). If the scan code set information written in thepacket data is the PS/2 pointing device data (step S55/YES), the maincontroller 202 transmits the pointing device data retrieved from thedata portion to the pointing device data processor 206 (step S56). Thepointing device data processor 206 transmits the PS/2 pointing devicedata to the server N (step S57).

If the data ID is that of the USB pointing device data (step S58/YES),the main controller 202 transmits the USB pointing device data retrievedfrom the data portion to the USB device data processor 207 (step S64).The USB device data processor 207 transmits the received USB pointingdevice data to the server N (step S65).

If the data ID retrieved from the packet data does not represent thePS/2 pointing device data (step S55/NO) or the USB pointing device data(step S58/NO), the main controller 202 determines whether or not thedata ID corresponds to the scan code set information (step S59). Thescan code set information stored in the memory 204 is the scan code setinformation that corresponds to the connection of the KVM apparatus 200and the server N. If the data ID does not correspond to the scan codeset information stored, the scan code transmitted to the server Nwithout change is not recognized on the server N. Accordingly, if thedata ID does not correspond to the scan codes set information (stepS59/NO), the data is converted to have a corresponding data format onthe data converter 203. The data conversion on the data converter 203 isperformed according to a conversion table stored in the memory (ROM).The ROM stores the conversion table for each piece of all scan code setinformation (scan code sets 1 through 3 and USB scan code set). The dataconverter 203 converts the scan code retrieved from the packet into thedata format represented by the scan code set information registered inthe memory 204 (step S60).

If the data ID corresponds to the scan code set information (stepS59/YES) or the data conversion is completed (step S60), the scan codeis output to the corresponding transmitting portion. If the scan code isa PS/2 scan code (step S61/YES), the main controller 202 outputs thePS/2 scan code to the scan code processor 205 (step S62). The scan codeprocessor 205 transmits the received PS/2 scan code to the server N. Ifthe scan code is a USB scan code (step S61/NO), the main controller 202outputs the USB scan code to the USB device data processor 207. The USBdevice data processor 207 transmits the received USB scan code to theserver N (step S65).

In the present exemplary embodiment, even if the keyboard input has anyformat of the control PC 100, it is possible to convert into anappropriate scan code and transmit to the server N.

In the above-described exemplary embodiment, the data is converted onthe KVM apparatus 200 and transmitted to the server N. In addition, asanother exemplary embodiment, the control PC 100 may acquire the scancode set information and transmit the scan code in which the data isconverted on the control PC 100. In this case, the scan code setinformation acquisition command is defined between the control PC 100and the KVM apparatus 200, so that the control PC 100 can acquire thescan code set information.

Fourth Exemplary Embodiment

A fourth exemplary embodiment will be described with reference to theaccompanying drawings. In the present exemplary embodiment, the scancode is encrypted and transmitted to the KVM apparatus 200 via thenetwork. The KVM apparatus 200 decrypts the received scan code andtransmits to the server N.

FIG. 16 shows a configuration of the control PC 100. FIG. 17 shows aconfiguration of the KVM apparatus 200. As shown in FIG. 16, the controlPC 100 is additionally provided with an encryption processor 130, andthe KVM apparatus 200 is additionally provided with a decryptionprocessor 208.

The encryption processor 130 encrypts data transmitted from the dataconverter 105, and such encrypted data is transmitted to the dataconverter 105. The data converter 105 converts the encrypted scan codeinto packets, and outputs the packet to the communication processor 108.The communication processor 108 transmits the packet data to the KVMapparatus 200.

The KVM apparatus 200 receives the packet data transmitted through thenetwork at the communication processor 201, and transfers to the dataconverter 203. The data converter 203 retrieves the encrypted scan codefrom the packet data. Such retrieved scan code is output to thedecryption processor 208 and decrypted therein. Such decrypted scan codeis returned from the decryption processor 208 to the data converter 203,and is output to the scan code processor 205 from the data converter203. The scan code processor 205 outputs the scan code to the server N.

In the present exemplary embodiment, it is possible to encrypt thekeyboard data to output to the network, and it is also possible todecrypt the encrypted keyboard data to transmit to the server N.Accordingly, the information leakage can be prevented, thereby enhancingthe security.

A scan code transmission method employed as an aspect of the presentinvention is realized with a Central Processing Unit (CPU), Read OnlyMemory (ROM), Random Access Memory (RAM), and the like, by installing aprogram from a portable memory device or a storage device such as a harddisc device, CD-ROM, DVD, or a flexible disc or downloading the programthrough a communications line. Then the steps of program are executed asthe CPU operates the program.

The present invention is not limited to the above-mentioned exemplaryembodiments, and other embodiments, variations and modifications may bemade without departing from the scope of the present invention. Forexample, the data detection module 101 may be configured as hardware,and the data converter 105 may be configured by software.

The present invention is based on Japanese Patent Application No.2005-235216 filed on Aug. 15, 2005, the entire disclosure of which ishereby incorporated by reference.

1. An information processing apparatus comprising: a code convertingportion that converts a scan code output from a keyboard into acorresponding key code; a data converting portion that converts the keycode into packets; and a changing portion that changes an outputdestination of the scan code from the code converting portion to thedata converting portion, when an application software to operate aserver apparatus remotely located is activated in the informationprocessing apparatus, which is in connection with the server apparatusover a network.
 2. The information processing apparatus as claimed inclaim 1, wherein the changing portion is realized by a control programof a controller.
 3. The information processing apparatus as claimed inclaim 2, wherein the control program is a filter driver added to anexisting group of drivers.
 4. The information processing apparatus asclaimed in claim 1, wherein the changing portion changes the outputdestination of the scan code according to a cursor position displayed ona display.
 5. The information processing apparatus as claimed in claim1, wherein the changing portion changes the output destination of thescan code, when a button displayed on a display is pushed by a pointingdevice, the button being displayed by the application software.
 6. Aserver selector comprising: a storage portion that stores information ona connection specification between one or more server apparatuses andthe server selector; a data converting portion that converts a scan codegenerated from a keyboard into data corresponding to the connectionspecification; and a transmitting portion that transmits the datacorresponding to the connection specification, to the one or more serverapparatuses, wherein the server selector can operate the one or moreserver apparatuses with a set of console.
 7. The server selector asclaimed in claim 6, wherein when one of the one or more serverapparatuses is powered on, the server selector acquires enumeration datafrom the server apparatus during a process of a connection recognitionbetween the server apparatus and a USB device, retrieves information ofthe connection specification from the enumeration data acquired, andstores the information in the storage portion.
 8. The server selector asclaimed in claim 6, wherein when one of the one or more serverapparatuses is powered on, the server selector acquires negotiation datafrom the server apparatus at a connection establishment with the serverapparatus, retrieves the information on the connection specificationfrom the negotiation data acquired, and stores the information in thestorage portion.
 9. A remote operation system comprising: multipleserver apparatuses remotely located; a server selector in connectionwith the multiple servers over a network to be able to operate themultiple server apparatuses with a set of console; and an informationprocessing apparatus in connection with the server selector and havingthe set of console to operate the multiple server apparatuses, theinformation processing apparatus including: a storage portion thatstores information on a connection specification between each of themultiple server apparatuses and the server selector; a data convertingportion that converts a scan code generated from a keyboard into datacorresponding to the connection specification of one of the multipleserver apparatuses, which is a transmission destination of the scancode; and a transmitting portion that transmits the data correspondingto the connection specification to the server selector.
 10. The remoteoperation system as claimed in claim 9, wherein the server selectorincludes: a storage portion that stores information on the connectionspecification between the multiple server apparatuses and the serverselector; a data converting portion that converts the scan codegenerated from the keyboard into the data corresponding to theconnection specification; and a transmitting portion that transmits thedata corresponding to the connection specification, to at least one ofthe multiple server apparatuses.
 11. The remote operation system asclaimed in claim 9, wherein the information processing apparatusincludes: a code converting portion that converts the scan codegenerated from the keyboard into a corresponding key code; a dataconverting portion that converts the key code into packets; atransmitting portion that transmits the data converted into the packetsto the server selector in connection with the network; and a changingportion that changes an output destination of the scan code from thecode converting portion to the data converting portion, when anapplication software to operate a server apparatus is activated.
 12. Theremote operation system as claimed in claim 9, wherein: the informationprocessing apparatus further includes an encryption processing portionthat encrypts the scan code; and the server selector further includes adecryption processing portion that decrypts the scan code encrypted. 13.A scan code transmission method comprising: converting a scan code inputon a keyboard into packets without changing to a corresponding key code,when an application software to operate a server apparatus is activated;and transmitting the scan code converted into the packets to a serverapparatus remotely located and connected over a network.
 14. A scan codetransmitting method comprising: converting a scan code input with a setof console into data corresponding to a connection specification with aserver apparatus selected from multiple server apparatuses; transmittingthe data corresponding to the connection specification to the serverapparatus.
 15. A computer readable medium storing a program causing acomputer to execute a process for a scan code transmission, the processcomprising: converting a scan code input on a keyboard into packetswithout changing to a corresponding key code, when an applicationsoftware to operate a server apparatus is activated; and transmittingthe scan code converted into the packets to a server apparatus remotelylocated and connected over a network.
 16. A computer readable mediumstoring a program causing a computer to execute a process for a scancode transmission, the process comprising: converting a scan code inputwith a set of console into data corresponding to a connectionspecification with a server apparatus selected from multiple serverapparatuses; transmitting the data corresponding to the connectionspecification to the server apparatus.